﻿//Created by Action Script Viewer - http://www.buraks.com/asv
package com.fminutes.vinciIsometric.core {
    import flash.display.*;

    public class IsoGrid extends Sprite {

        private static var bitmapDataList:Object;

        public function IsoGrid(_arg1:int=100, _arg2:int=16, _arg3:int=2){
            var _local4:int;
            this.init(_arg1, _arg2, _arg3);
        }
        private function removeAllChildren():void{
            while (numChildren > 0) {
                removeChildAt(0);
            };
        }
        public function init(_arg1:int=100, _arg2:int=16, _arg3:int=2):void{
            var _local4:int;
            var _local5:int;
            var _local6:int;
            var _local7:int;
            var _local8:Boolean;
            var _local9:Boolean;
            var _local10:Bitmap;
            _arg1 = (_arg1 / _arg3);
            _arg2 = (_arg2 * _arg3);
            this.removeAllChildren();
            _local4 = 0;
            while (_local4 < _arg1) {
                _local5 = 0;
                while (_local5 < _arg1) {
                    _local6 = 4;
                    _local7 = 4;
                    _local8 = false;
                    _local9 = false;
                    if ((_local4 + 4) >= _arg1){
                        _local6 = (((_arg1 - 1) % 4) + 1);
                        _local8 = true;
                    };
                    if ((_local5 + 4) >= _arg1){
                        _local7 = (((_arg1 - 1) % 4) + 1);
                        _local9 = true;
                    };
                    _local10 = new Bitmap(this.getBitmapData(_local6, _local7, _arg2, _local8, _local9));
                    _local10.x = (((_local4 * _arg2) - (_local5 * _arg2)) - (_arg2 * 4));
                    _local10.y = (((_local5 * _arg2) / 2) + ((_local4 * _arg2) / 2));
                    addChild(_local10);
                    _local5 = (_local5 + 4);
                };
                _local4 = (_local4 + 4);
            };
        }
        public function getBitmapData(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean=false, _arg5:Boolean=false, _arg6:int=4):BitmapData{
            var _local10:int;
            var _local11:Sprite;
            var _local12:int;
            var _local13:int;
            var _local14:BitmapData;
            var _local7:String = (_arg4) ? "t" : "f";
            var _local8:String = (_arg5) ? "t" : "f";
            var _local9:String = (((((("s" + _arg6) + _local7) + _local8) + _arg1) + "_") + _arg2);
            if (bitmapDataList == null){
                bitmapDataList = {};
            };
            if (bitmapDataList.hasOwnProperty(_local9) == false){
                _local10 = _arg6;
                _local11 = new Sprite();
                _local11.graphics.lineStyle(1, 0x333333);
                _local12 = 0;
                _local13 = 0;
                _local13 = (_arg4) ? (_arg1 + 1) : _arg1;
                _local12 = 0;
                while (_local12 < _local13) {
                    _local11.graphics.moveTo(((_local10 * _arg3) + (_arg3 * _local12)), ((_arg3 * _local12) / 2));
                    _local11.graphics.lineTo((((_local10 * _arg3) + (_arg3 * _local12)) - (_arg2 * _arg3)), (((_arg2 * _arg3) / 2) + ((_arg3 * _local12) / 2)));
                    _local12++;
                };
                _local13 = (_arg5) ? (_arg2 + 1) : _arg2;
                _local12 = 0;
                while (_local12 < _local13) {
                    _local11.graphics.moveTo(((_local10 * _arg3) - (_arg3 * _local12)), ((_arg3 * _local12) / 2));
                    _local11.graphics.lineTo((((_local10 * _arg3) - (_arg3 * _local12)) + (_arg1 * _arg3)), (((_arg1 * _arg3) / 2) + ((_arg3 * _local12) / 2)));
                    _local12++;
                };
                _local11.graphics.endFill();
                _local14 = new BitmapData(((_local10 * _arg3) * 2), (_local10 * _arg3), true, 0xFFFFFF);
                _local14.draw(_local11);
                bitmapDataList[_local9] = _local14;
            };
            return (bitmapDataList[_local9]);
        }

    }
}//package com.fminutes.vinciIsometric.core 
